/* 
 * File:   ContactFloorListener.cpp
 * Author: lucia
 * 
 * Created on 13 de septiembre de 2014, 17:24
 */

#include "ContactFloorListener.h"
#include "../Define/DefaultValues.h"

void ContactFloorListener::BeginContact(b2Contact* contact){
    
    b2Fixture* fixtA = contact->GetFixtureA();
    if ( fixtA->IsSensor() ){
        // el sensor esta en contacto con el suelo
        b2Fixture* fixtB = contact->GetFixtureB();
        fixtA->GetBody()->SetUserData((void*)IN_CONTACT_GROUND);
        return;
    }
    
    b2Fixture* fixtB = contact->GetFixtureB();
    if ( fixtB->IsSensor() ) {
        b2Fixture* fixtA = contact->GetFixtureA();
        // el sensor esta en contacto con el suelo
        fixtB->GetBody()->SetUserData((void*)IN_CONTACT_GROUND);
        return;
    }
}

void ContactFloorListener::EndContact(b2Contact* contact){

    b2Fixture* fixtA = contact->GetFixtureA();
    if ( fixtA->IsSensor() ){
        
        b2Fixture* fixtB = contact->GetFixtureB();
        fixtA->GetBody()->SetUserData((void*)NOT_CONTACT_GROUND);
        return;
    }
    
    b2Fixture* fixtB = contact->GetFixtureB();
    if ( fixtB->IsSensor() ) {
        b2Fixture* fixtA = contact->GetFixtureA();
        fixtB->GetBody()->SetUserData((void*)NOT_CONTACT_GROUND);
        return;
    }
}

ContactFloorListener::~ContactFloorListener() {
//    printf("Destructor ContactFloorListener");
}

